Repository navigation
Semantic RunInputs from a published description (Stage 1, PR 12) - #210
Merged
Merged
Conversation
Fov gains repeat_group, condition_id, technical_repeat_id and channel_ids beside the unchanged key; RunInputs gains channel_index, references, mask_semantics and mask_check_status. Only the published morphobricks.toml is read and it must be the file the run recorded: a draft or an unconfirmed file is A_DRAFT_REFUSED, and reading a mask file the mask step has not checked is A_MASK_UNCHECKED. A run without a description is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Scma6W3LC11s3qjXHZuGDm
An error occurred while trying to automatically change base from
claude/run-description
to
main
November 8, 2026 00:02
This was referenced Nov 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on PR 209
This branch contains PR 11's two commits because it needs the manifest's
experiment_descriptionentry. Its base is PR 11's branch so the diff shows only PR 12; retarget tomainonce PR 11 merges. Related to issue 170; it does not close it.What changed
Stage 1 design PR 12 (design section 3 "Semantic RunInputs"). For a run whose manifest has
experiment_description:Fov.repeat_group,condition_id,technical_repeat_idandchannel_idsare added beside the unchangedkey, which keeps the source folder labels (owner Q8). Folders that name no declared unit, or a unit whose channel count is not the image's, are aRunInputsError; nothing is guessed.RunInputs.channel_index(fov, id)returns the C index; an absent channel isChannelNotFoundError, never a default.references()gives the condition reference graph by canonical ID;mask_semantics()andmask_check_status(mask_id, fov)give the masks' meaning and check status.morphobricks.tomlis read, and it must be the file whose SHA-256 the run recorded (also atRunInputs.open). A draft, a file not namedmorphobricks.toml, or a published file with an unconfirmed repeat isA_DRAFT_REFUSED(DraftRefusedError).read_maskof a file the mask step has not checked isA_MASK_UNCHECKED(MaskUncheckedError).A run without a description is unchanged: new
Fovfields areNone,description(),references()andmask_semantics()returnNone,read_maskis as before, and a description published after such a run is ignored.To keep files under 600 lines,
RunInputsErrormoved torun_inputs_errorandLazyImagetorun_inputs_image; both are still importable fromrun_inputs.Conformance P14, P25 and the
A_MASK_UNCHECKEDpart of P28:tests/test_spec_run_inputs_semantic.py(7 tests, added to the Spec gate), plustests/test_run_inputs_semantic.py(11).Regression tests
The new test files fail on the PR 11 code at collection (
morphobricks_preprocessing.description_consume,run_inputs_errordo not exist;Fovhas norepeat_group), so they cannot pass without this change. P25 also checks that inv30grouping by the source label would merge repeatsDay1andDay2.Checks
python tools/check.py: ruff and code rules clean; 4188 passed, 4 skipped, 0 failed. The 4 skips are the same environmental ones as in PR 11 (case-sensitive file system x3, running as root x1). The v0.4.0 parity suite is part of this run and passed.Not done
image_typeandchannel_availability()of the design sketch are not added (not in the requested scope).Generated by Claude Code